package br.com.eduquiz.session;

import br.com.eduquiz.entity.*;

import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.framework.EntityQuery;
import java.util.Arrays;

@Name("subGrupoList")
public class SubGrupoList extends EntityQuery<SubGrupo> {
	
	private static final long serialVersionUID = -2721728562854514219L;

	private static final String EJBQL = "select subGrupo from SubGrupo subGrupo";

	private static final String[] RESTRICTIONS = { 
		"lower(subGrupo.nome) like lower(concat('%',#{subGrupoList.subGrupo.nome},'%'))",
		"lower(subGrupo.descricao) like lower(concat('%',#{subGrupoList.subGrupo.descricao},'%'))",
		"lower(subGrupo.email) like lower(concat('%',#{subGrupoList.subGrupo.email},'%'))",
		"subGrupo.padrao = #{subGrupoList.subGrupo.padrao}",
		"subGrupo.status = #{subGrupoList.subGrupo.status}",
		"subGrupo.grupo.id = #{subGrupoList.grupo.id}",
		"subGrupo.grupo.administradorGrupo.id = #{subGrupoList.administradorGrupo.id}",
	};

	private SubGrupo subGrupo = new SubGrupo();
	
	@In(required=false)
	private Grupo grupo;
	
	@In(required=false)
	private AdministradorGrupo administradorGrupo;

	public SubGrupoList() {
		setEjbql(EJBQL);
		setRestrictionExpressionStrings(Arrays.asList(RESTRICTIONS));
		setMaxResults(25);
	}

	public SubGrupo getSubGrupo() {
		return subGrupo;
	}

	public void setGrupo(Grupo grupo) {
		this.grupo = grupo;
	}

	public Grupo getGrupo() {
		return grupo;
	}

	public void setAdministradorGrupo(AdministradorGrupo administradorGrupo) {
		this.administradorGrupo = administradorGrupo;
	}

	public AdministradorGrupo getAdministradorGrupo() {
		return administradorGrupo;
	}
}
